package com.jms.fu.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.log4j.Logger;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.jms.fu.common.UIMessage;
import com.jms.fu.exception.DAOException;
import com.jms.fu.model.bean.User;
import com.jms.fu.model.bo.TransactionBO;
import com.jms.fu.model.bo.UserBO;

public class Deposit5Action extends Action{
	private static Logger logger = Logger.getLogger(LoginAction.class);

	/**
	 * Method execute, called when executing the action
	 * 
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 */
	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		TransactionBO transactionBO = new TransactionBO();
		UserBO userBO = new UserBO();
		HttpSession session = request.getSession();
		User userInfo = new User();
		if (session.getAttribute("username") == null) {
			return mapping.findForward("home");
		}
		User temp = (User) session.getAttribute("userInfo");
		String username = (String) session.getAttribute("username");
		
		float oldBalance = temp.getBalance();
		float newBalance = oldBalance + 1200;
		try {
			userBO.deposit(username,newBalance);
			transactionBO.addNewTransaction(username,-2,1200,1,1);
			userInfo = userBO.getUserInfoByUsername(username);
			session.setAttribute("userInfo", userInfo);
			request.setAttribute("info", UIMessage.DEPOSIT_SUCCESSFULLY );
			logger.info(username + " added 200 point");
			return mapping.findForward("success");
			
		} catch (DAOException e) {
			logger.error(e.getMessage());
			return mapping.findForward("error");
		}
	
	}
}
